package com.suning.sawp.intf.report;

import java.util.List;

import com.suning.sawp.dto.bi.OmsOrderItemPos;
import com.suning.sawp.dto.bi.StoreManDevMemberData;
import com.suning.sawp.dto.bi.StoreManRealIncomeList;
import com.suning.sawp.dto.common.ReturnMsg;
import com.suning.sawp.dto.promotion.PromotionDetail;

/**
 * 
 * 统计数据逻辑处理接口<br>
 * 〈功能详细描述〉
 *
 * @author 14062606
 * @see [相关类/方法]（可选）
 * @since [产品/模块版本] （可选）
 */
public interface ReportService {

    /**
     * 
     * 功能描述:查询会员发展明细 <br>
     * 〈功能详细描述〉
     * 
     * @param currIndex 起始
     * @param pageSize 分页大小
     * @param promoteDate 发展时间（0昨日发展 1本月发展 2上月发展（默认本月））
     * @param promotionSrc 发展渠道 （传空表示所有渠道）
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    PromotionDetail queryPromotionList(int currIndex, int pageSize, String promoteDate, String promotionSrc,
            String staffId);

    /**
     * 
     * 功能描述: <br>
     * 查询oms大订单下各个小订单的销售提成,按小订单号分组求和,缓存半天
     *
     * @param omsOrderNo oms大订单号
     * @param dateFormat yyyyMMdd 用于表路由
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    List<OmsOrderItemPos> queryOmsOrderItemsCommission(String omsOrderNo, String dateFormat);
    
    /**
     * 
     * 功能描述: 查询POS渠道店员发展会员汇总<br>
     * 〈功能详细描述〉
     *
     * @param staffId
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    StoreManDevMemberData queryPosDevMemberData(String staffId);
    
    /**
     * 
     * 功能描述: 查询POS渠道注册会员明细<br>
     * 〈功能详细描述〉
     *
     * @param promoteDate 查询日期
     * @param startIndex 记录起始值
     * @param limit 每页记录数
     * @param staffId 工号
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    ReturnMsg<PromotionDetail> queryPosPromotionList(String promoteDate, 
            Integer startIndex, Integer limit, String staffId);
    
    /**
     * 
     * 功能描述: 查询实际提成列表<br>
     * 〈功能详细描述〉
     *
     * @param staffId
     * @param startIndex
     * @param limit
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    ReturnMsg<StoreManRealIncomeList> queryRealCommssionList(
            String staffId, Integer startIndex, Integer limit);
}
